package com.ywy.core.base;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 基本mapper接口
 */
public interface BaseMapper<T, P> {
    /**
     * 根据id获取对象
     */
    T selectById(String id);

    /**
     * 根据参数查询集合
     */
    List<T> selectList(@Param("param") P p);

    /**
     * 根据参数查询数量
     */
    int selectCount(@Param("param") P p);

    /**
     * 插入
     */
    int insert(@Param("bean") T t);

    /**
     * 批量插入
     */
    int insertBatch(@Param("list") List<T> list);

    /**
     * 根据id更新
     */
    int updateById(@Param("bean") T t, @Param("id") String id);

    /**
     * 多条件更新
     */
    int updateByParam(@Param("bean") T t, @Param("param") P p);

    /**
     * 根据id删除
     */
    int deleteById(String id);

    /**
     * 多条件删除
     */
    int deleteByParam(@Param("param") P p);
}
